/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package papacharly.encheres.server;

import java.util.ArrayList;
import org.omg.CORBA.ORB;
import papacharly.encheres.idl.Client;
import papacharly.encheres.idl.Produit;
import papacharly.encheres.idl.ServeurPOA;
import papacharly.encheres.idl.ServeurPackage.Categorie;
import papacharly.encheres.idl.ServeurPackage.Enchere;
import papacharly.encheres.idl.ServeurPackage.User;
import papacharly.encheres.log.Logger;

/**
 *
 * @author user01
 */
class ServerImpl extends ServeurPOA {

    private Logger log = Logger.getLogger(this.getClass().getSimpleName());
    private ORB orb;

    public void setORB(ORB orb_val) {
        orb = orb_val;
    }

    public boolean subscribe(Client client, int[] seqIdProduit) {
        for (int i : seqIdProduit) {
            System.out.println("ProduitId : " + i);
        }
        //throw new UnsupportedOperationException("Not supported yet.");
        ArrayList<Produit> listProduit = new ArrayList<Produit>();

        listProduit.add(new Produit());
        listProduit.get(0).idProduit = 1;
        listProduit.get(0).prixImmediat = 10;
        listProduit.get(0).libelle = "libelle";
        listProduit.get(0).description = "desc";

        listProduit.add(new Produit());
        listProduit.get(1).idProduit = 2;
        listProduit.get(1).prixImmediat = 200;
        listProduit.get(1).libelle = "libelle";
        listProduit.get(1).description = "desc";

        client.notifie(listProduit.toArray(new Produit[listProduit.size()]));
        return true;
    }

    public boolean unsubscribe(Client user, int[] seqIdProduit) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public boolean login(String username, String mdp) {
        log.debug("login - username=" + username + " - mdp=" + mdp);
        return true;
    }

    public String createUser(User user) {
        log.debug("createUser - User.id=" + user.idUser + " - User.pseudo=" + user.pseudo + " - Generated mdp=" + user.pseudo);

        // TODO - Save new user in bdd

        return user.pseudo;
    }

    public boolean addProduct(Produit produit) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Produit[] getProductList(int categorieFiltre, int categorieId) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Produit getProduct(int idProduit) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public boolean addEnchere(Enchere enchere) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Enchere[] getEnchereList(int productId) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Categorie[] getCategorieList() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public boolean logout(String username) {
        log.debug("logout - username=" + username);
        return true;
    }
}
